package com.qixin.modules.ea.vo;

import java.util.List;

import com.qixin.modules.ea.entity.*;
import com.qixin.modules.eaApplication.entity.EaEntertainApply;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelEntity;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 招待费报销单
 * @Author: qixin-boot
 * @Date:   2021-07-06
 * @Version: V1.0
 */
@Data
@ApiModel(value="ea_entertainPage对象", description="招待费报销单")
public class EaEntertainPage {

	/**主键*/
	@ApiModelProperty(value = "主键")
    private java.lang.String id;
	/**创建人*/
	@ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
	@ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
	/**所属部门*/
	@ApiModelProperty(value = "所属部门")
    private java.lang.String sysOrgCode;
	/**单据编号*/
	@Excel(name = "单据编号", width = 15)
	@ApiModelProperty(value = "单据编号")
    private java.lang.String billNo;
	/**单据日期*/
	@Excel(name = "单据日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "单据日期")
    private java.util.Date billDate;
	/**单据状态*/
	@Excel(name = "单据状态", width = 15, dicCode = "BillState")
    @Dict(dicCode = "BillState")
	@ApiModelProperty(value = "单据状态")
    private java.lang.Integer state;
	/**过账日期*/
	@Excel(name = "过账日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "过账日期")
    private java.util.Date postDate;
	/**财务组织*/
	@Excel(name = "财务组织", width = 15)
	@ApiModelProperty(value = "财务组织")
	private java.lang.String financeDeptId;
	private transient String financeDeptIdName;
	/**币种*/
	@Excel(name = "币种", width = 15, dicCode = "currency")
    @Dict(dicCode = "currency")
	@ApiModelProperty(value = "币种")
    private java.lang.Integer currencyId;
	/**报销金额*/
	@Excel(name = "报销金额", width = 15)
	@ApiModelProperty(value = "报销金额")
    private java.math.BigDecimal eaAmt;
	/**报销人*/
	@Excel(name = "报销人", width = 15)
	@ApiModelProperty(value = "报销人")
    private java.lang.String personId;
    private transient java.lang.String personIdName;
	/**报销人单位*/
	@Excel(name = "报销人单位", width = 15)
	@ApiModelProperty(value = "报销人单位")
    private java.lang.String companyCodeId;
	/**报销人部门*/
	@Excel(name = "报销人部门", width = 15)
	@ApiModelProperty(value = "报销人部门")
    private java.lang.String deptId;
	/**费用承担部门名称*/
	@Excel(name = "费用承担部门名称", width = 15)
	@ApiModelProperty(value = "费用承担部门名称")
	private java.lang.String costDeptName;
	/**收款人*/
	@Excel(name = "收款人", width = 15)
	@ApiModelProperty(value = "收款人")
    private java.lang.String recPersonId;
    private java.lang.String recPersonIdName;
	/**实际付款金额*/
	@Excel(name = "实际付款金额", width = 15)
	@ApiModelProperty(value = "实际付款金额")
    private java.math.BigDecimal actualPayAmt;
	/**标准金额*/
	@Excel(name = "标准金额", width = 15)
	@ApiModelProperty(value = "标准金额")
	private java.math.BigDecimal reversalAmount;
	/**个人银行账户*/
	@Excel(name = "个人银行账户", width = 15)
	@ApiModelProperty(value = "个人银行账户")
    private java.lang.String perBankCode;
	/**个人银行户主*/
	@Excel(name = "个人银行户主", width = 15)
	@ApiModelProperty(value = "个人银行户主")
    private java.lang.String perBankName;
	/**个人开户银行*/
	@Excel(name = "个人开户银行", width = 15)
	@ApiModelProperty(value = "个人开户银行")
    private java.lang.String bankRecordId;
	/**费用承担单位*/
	@Excel(name = "费用承担单位", width = 15)
	@ApiModelProperty(value = "费用承担单位")
    private java.lang.String costCompCodeId;
	/**费用承担部门*/
	@Excel(name = "费用承担部门", width = 15)
	@ApiModelProperty(value = "费用承担部门")
    private java.lang.String costDept;
	/**支付方式*/
	@Excel(name = "支付方式", width = 15, dicCode = "payment_method")
    @Dict(dicCode = "payment_method")
	@ApiModelProperty(value = "支付方式")
    private java.lang.Integer paymentMethod;
	/**项目*/
	@Excel(name = "项目", width = 15)
	@ApiModelProperty(value = "项目")
    private java.lang.String projectId;
	/**费用项目*/
	@Excel(name = "费用项目", width = 15)
	@ApiModelProperty(value = "费用项目")
    private java.lang.String indexId;
    private java.lang.String indexIdName;
	/**是否多人报销*/
	@Excel(name = "是否多人报销", width = 15)
	@ApiModelProperty(value = "是否多人报销")
    private java.lang.Boolean isManyBx;
	/**是否分摊*/
	@Excel(name = "是否分摊", width = 15)
	@ApiModelProperty(value = "是否分摊")
    private java.lang.Boolean isShare;
	/**陪同人员*/
	@Excel(name = "陪同人员", width = 15)
	@ApiModelProperty(value = "陪同人员")
    private java.lang.String accPerson;
	/**其他陪同人员*/
	@Excel(name = "其他陪同人员", width = 15)
	@ApiModelProperty(value = "其他陪同人员")
    private java.lang.String oaccPerson;
	/**附件张数*/
	@Excel(name = "附件张数", width = 15)
	@ApiModelProperty(value = "附件张数")
    private java.lang.String atNum;
	/**收件人/单位名称*/
	@Excel(name = "收件人/单位名称", width = 15)
	@ApiModelProperty(value = "收件人/单位名称")
    private java.lang.String bankRecordIdSrc;
	/**收款银行和账户*/
	@Excel(name = "收款银行和账户", width = 15)
	@ApiModelProperty(value = "收款银行和账户")
    private java.lang.String perBankCodeStr;
	/**事由*/
	@Excel(name = "事由", width = 15)
	@ApiModelProperty(value = "事由")
    private java.lang.String cause;
	/**柔性规则信息*/
	@Excel(name = "柔性规则信息", width = 15)
	@ApiModelProperty(value = "柔性规则信息")
    private java.lang.String standardMsg;
	/**来源报销单据编号*/
	@Excel(name = "来源报销单据编号", width = 15)
	@ApiModelProperty(value = "来源报销单据编号")
    private java.lang.String srcBxBillCode;
	/**来源报销单据主键*/
	@Excel(name = "来源报销单据主键", width = 15)
	@ApiModelProperty(value = "来源报销单据主键")
    private java.lang.String srcBxBillPk;
	/**来源报销单据状态*/
	@Excel(name = "来源报销单据状态", width = 15)
	@ApiModelProperty(value = "来源报销单据状态")
    private java.lang.Integer srcBxBillStatus;
	/**附件*/
	@Excel(name = "附件", width = 15)
	@ApiModelProperty(value = "附件")
    private java.lang.String attch;
	/**图片*/
	@Excel(name = "图片", width = 15)
	@ApiModelProperty(value = "图片")
    private java.lang.String picture;

	//审批人id
	private transient String auditManId;
	//审批人
	private transient String auditMan;

	@ExcelCollection(name="费用明细")
	@ApiModelProperty(value = "费用明细")
	private List<EaBookDetail> eaBookDetailList;

	@ExcelCollection(name="申请单明细")
	@ApiModelProperty(value = "申请单明细")
	private List<EaEntertainApply> eaApplyDetailList;

	@ExcelCollection(name="借款单核销")
	@ApiModelProperty(value = "借款单核销")
	private List<EaBorrowSubtract> eaBorrowSubtractList;

    @ExcelCollection(name="活动明细")
    @ApiModelProperty(value = "活动明细")
    private List<EaEntertainReceptionActivity> eaEntertainReceptionActivities;


	/**实际金额说明*/
	@Excel(name = "实际金额说明", width = 15)
	@ApiModelProperty(value = "实际金额说明")
	private java.lang.String actualEaAmtMessage;

	/**接待类型*/
	@Excel(name = "接待类型", width = 15)
	@ApiModelProperty(value = "接待类型")
	private java.lang.String receptionType;
	/**接待主要对象及人数*/
	@Excel(name = "接待主要对象及人数", width = 15)
	@ApiModelProperty(value = "接待主要对象及人数")
	private java.lang.String receptionObjectNameAndCount;
	/**住宿情况_时间*/
	@Excel(name = "住宿情况_时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "住宿情况_时间")
	private java.util.Date accommodationTime;
	/**住宿情况_地点*/
	@Excel(name = "住宿情况_地点", width = 15)
	@ApiModelProperty(value = "住宿情况_地点")
	private java.lang.String accommodationAddr;
	/**住宿情况_人数*/
	@Excel(name = "住宿情况_人数", width = 15)
	@ApiModelProperty(value = "住宿情况_人数")
	private java.lang.Integer accommodationPeopleNum;
	/**住宿情况_费用总计*/
	@Excel(name = "住宿情况_费用总计", width = 15)
	@ApiModelProperty(value = "住宿情况_费用总计")
	private java.math.BigDecimal accommodationAmt;
	/**用车情况*/
	@Excel(name = "用车情况", width = 15)
	@ApiModelProperty(value = "用车情况")
	private java.lang.String vehicleArrangement;
	/**赠送纪念品*/
	@Excel(name = "赠送纪念品", width = 15)
	@ApiModelProperty(value = "赠送纪念品")
	private java.lang.String presentSouvenirs;
	/**用餐安排_时间*/
	@Excel(name = "用餐安排_时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "用餐安排_时间")
	private java.util.Date mealArrangementDate;
	/**用餐安排_地点*/
	@Excel(name = "用餐安排_地点", width = 15)
	@ApiModelProperty(value = "用餐安排_地点")
	private java.lang.String mealArrangementAddr;
	/**用餐安排_来宾人数*/
	@Excel(name = "用餐安排_来宾人数", width = 15)
	@ApiModelProperty(value = "用餐安排_来宾人数")
	private java.lang.Integer mealArrangementGuestsNum;
	/**用餐安排_陪餐人数*/
	@Excel(name = "用餐安排_陪餐人数", width = 15)
	@ApiModelProperty(value = "用餐安排_陪餐人数")
	private java.lang.Integer mealArrangementMealAttendantsNum;
	/**用餐安排_费用总计*/
	@Excel(name = "用餐安排_费用总计", width = 15)
	@ApiModelProperty(value = "用餐安排_费用总计")
	private java.math.BigDecimal mealArrangementAmt;
	/**用餐安排_酒水明细（含酒水售价）*/
	@Excel(name = "用餐安排_酒水明细（含酒水售价）", width = 15)
	@ApiModelProperty(value = "用餐安排_酒水明细（含酒水售价）")
	private java.lang.String mealArrangementWineDetail;
	/**工作人员简餐（含简餐次数、每次人数和费用）*/
	@Excel(name = "工作人员简餐（含简餐次数、每次人数和费用）", width = 15)
	@ApiModelProperty(value = "工作人员简餐（含简餐次数、每次人数和费用）")
	private java.lang.String staffMeal;
	/**本次接待费用补充说明*/
	@Excel(name = "本次接待费用补充说明", width = 15)
	@ApiModelProperty(value = "本次接待费用补充说明")
	private java.lang.String budgetExpensesSupplementaryNotes;

	@ApiModelProperty(value = "更新日期-校验单据时效性")
	private String time;

	/**人员任职信息主键*/
	@Excel(name = "人员任职信息主键", width = 15)
	@ApiModelProperty(value = "人员任职信息主键")
	private java.lang.String psnjobId;

	/**流程实例id*/
	@Excel(name = "流程实例id", width = 15)
	@ApiModelProperty(value = "流程实例id")
	private java.lang.String procInstId;

}
